
//2461.长度为K子数组中的最大和
class Solution {
    public:
        long long maximumSubarraySum(vector<int>& nums, int k) {
            int n=nums.size();
            int left=0,right=0;
            unordered_map<int,int> record;   //记录元素出现的此处
            int count=0;   //记录重复元素个数
    
            long long ret=0,tmp=0;
            while(right<n)
            {
                //入窗口
                while(right-left<k)
                {
                    if(record[nums[right]]==1) count++;
                    record[nums[right]]++;
                    tmp+=nums[right++];
                }
    
                //调整结果
                if(count==0) ret=max(ret,tmp); 
    
                //出窗口
                if(record[nums[left]]==2) count--;
                record[nums[left]]--;
                tmp-=nums[left++];
            }
            return ret;
        }
    };